﻿using System.Threading.Tasks;
using Abp;
using Abp.Notifications;
using LeadThing.AbpZeroTemplate.Authorization.Users;
using LeadThing.AbpZeroTemplate.MultiTenancy;

namespace LeadThing.AbpZeroTemplate.Notifications
{
    public interface IAppNotifier
    {
        #region 扩展方法

        /// <summary>
        /// 新增通知
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task NewNoticeAsync(SentFrendshipRequestNotificationData input);

        #endregion

        #region 消息通知管理

        Task WelcomeToTheApplicationAsync(User user);

        Task NewUserRegisteredAsync(User user);

        Task NewTenantRegisteredAsync(Tenant tenant);

        Task SendMessageAsync(UserIdentifier user, string message, NotificationSeverity severity = NotificationSeverity.Info); 

        #endregion
    }
}
